/**********************************************************************************/
/* This header file is used to create the injecion properties of particles        */
/********************************************************************************/

#pragma once
#include "Constants.h"
#include "CaseSettings.h"
#include "ModelSettings.h"
#include "mathParticleTracking.h"
#include "Particle.h"

#include <vector>
#include <memory>
#include <numeric>



double GetParticleMass(double rho, double dia); // function to calculate particle mass


void GetRRSizeMassRatio(vector<double>& RRsize, vector<double>& RRmassRatio, int RRInterval,
	double RRMean, double RRSP, double RRmin, double RRmax); // function to get the Rosin-Rammler particle mass ratio, particle size according to rosin rammler definition

int GetPNumber(shared_ptr<ModelSettings>m1); // Calculate the total particle number injected

vector<Particle> GetInjectionAll(shared_ptr<CaseSettings> c1, shared_ptr<ModelSettings>m1,
	shared_ptr<Constants>const1); // create the vector of particles at the injection location

void debugInjection(vector<Particle> pAll);  // debug whether the particle injection is OK
